package com.oyb.service;

import com.oyb.dao.ClassDao;
import com.oyb.entity.Classes;
import com.oyb.entity.Page;
import com.oyb.util.ConnectionUtils;

import java.util.List;

public class ClassServies {
    private ClassDao classDao = new ClassDao();

    //查询所有班级
    public List<Classes> queryAllClasses(){
        return classDao.queryAllClasses();
    }
    //新增班级——插入
    public int insertclass(Classes classes){
        return classDao.insertclass(classes);
    }
    //根据id删除班级
    public int delclassesbyid(String[] ids){
        return classDao.delclassesbyid(ids);
    }
    //根据id查询班级
    public Classes queryClasses(String id) {
        return classDao.queryClasses(id);
    }
    //根据id修改班级
    public int updateclass(Classes classes){
        return classDao.updateclass(classes);
    }
    //根据添加学生传递过来的班级id修改班级人数,为后面删除学生减少人数铺垫，可以再加个类型来判断是增加还是减少人数
    public int updateclasscount(Integer id,int count,Integer type) throws Exception {
        int i = -1;
        try {
            //开启事务
            ConnectionUtils.begin();
            //执行业务 - 想象层很复杂的业务
            i = classDao.updateclasscount(id, count, type);
            //提交事务
            ConnectionUtils.commit();
        } catch (Exception e) {
            //回滚事务
            ConnectionUtils.roolback();
            throw e;
        }
        return i;

    }
    //分页查询所有班级
    public Page queryclasspage(Page p){
        try {
            //总条数
            int pagesum = classDao.querypagesum();
            p.setPageSum(pagesum);
            //总页数
            int pagecount = pagesum % p.getPageSize() == 0 ? pagesum / p.getPageSize() : pagesum / p.getPageSize()+1;
            p.setPageCount(pagecount);
            //根据限定查询返回对应的班级列表数据
            List<Classes> classeslist = classDao.queryclasseslist(p);
            p.setDatas(classeslist);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return p;
    }
}
